#pragma once
#include <boost/noncopyable.hpp>
#include "WallPtrVector.hpp"
#include "ImportExport.hpp"

namespace he
{
	class TerrainTile;

	//! Building represenatation.
	class Building : boost::noncopyable
	{

		// Attributes
	private:
		//! Top left tile.
		TerrainTile const &m_Origin;
		//! Get walls building is made of.
		WallPtrVector_t m_Walls;
		//! Wall material type.
		std::uint_least8_t m_Material;

		// Operations
	public:
		//! Get walls.
		HE_ENGINE_API WallPtrVector_t const &walls() const;
		//! Get building origin.
		TerrainTile const &origin() const;
		//! Get material type.
		std::uint_least8_t material() const;

		// Construction/Destruction
	public:
		HE_ENGINE_API Building(TerrainTile const &Tile, WallPtrVector_t &&Walls, std::uint_least8_t Material);
	};
} /*he*/
